// Description: 描述
package xtime

import "time"

// 计算某天还剩多少秒
// offset 不传表示今日，负数表示往前offset天 整表示往后offset天
func TodaySurplusSec(offset ...int) int64 {
	subDay := 1
	if len(offset) > 0 {
		subDay = offset[0] + 1
	}

	n := time.Now()
	nLast := subAtZeroTime(func() time.Time {
		return n
	}).AddDate(0, 0, subDay)

	return int64(nLast.Sub(n).Seconds())
}

// 获取某天的开始时间
// offset 不传表示今日，负数表示往前offset天 整表示往后offset天
func TodayStartTime(offset ...int) time.Time {
	subDay := 0
	if len(offset) > 0 {
		subDay = offset[0]
	}

	n := time.Now()
	nLast := subAtZeroTime(func() time.Time {
		return n
	}).AddDate(0, 0, subDay)

	return nLast
}

// 获取某天的结束时间
// offset 不传表示今日，负数表示往前offset天 整表示往后offset天
func TodayEndTime(offset ...int) time.Time {
	subDay := 0
	if len(offset) > 0 {
		subDay = offset[0]
	}

	n := time.Now()
	nLast := subAtEndTime(func() time.Time {
		return n
	}).AddDate(0, 0, subDay)

	return nLast
}
